#include <iostream>
#include <memory>

using namespace std;

void del(int *p)
{
	delete p;
	cout << "del" << endl;
}

void test()
{
	shared_ptr<int> p(new int(5), del);
	void *q = p.get();
}

int main(int argc, char *argv[])
{
	test();
	cout << "---------------" << endl;
	return 0;
}
